// Copyright (C) ZHENG Zhong <heavyzheng nospam-at gmail D0T com>
//
// $Id: dates.hpp 227 2008-09-15 13:33:40Z heavyzheng $
//

#ifndef ZZHENG_QUANT_DATES_HPP_20080709__
#define ZZHENG_QUANT_DATES_HPP_20080709__

#include <zzheng/quant/dates/config.hpp>

#include <zzheng/quant/dates/exception.hpp>
#include <zzheng/quant/dates/rolling.hpp>
#include <zzheng/quant/dates/stub.hpp>
#include <zzheng/quant/dates/basis.hpp>
#include <zzheng/quant/dates/date.hpp>
#include <zzheng/quant/dates/adjusted_date.hpp>
#include <zzheng/quant/dates/duration.hpp>
#include <zzheng/quant/dates/calendar.hpp>
#include <zzheng/quant/dates/schedule.hpp>
#include <zzheng/quant/dates/day_counter.hpp>
#include <zzheng/quant/dates/function.hpp>
#include <zzheng/quant/dates/io.hpp>


namespace zzheng {
namespace quant {

    ////////////////////////////////////////////////////////////////////////////////////////////////
    // using enumerations
    //

    using dates::basis_t;

    using dates::rolling_t;
    using dates::no_adjustment;
    using dates::preceding;
    using dates::following;
    using dates::mod_preceding;
    using dates::mod_following;

    using dates::stub_t;
    using dates::no_stub;
    using dates::short_first;
    using dates::short_last;
    using dates::long_first;
    using dates::long_last;


    ////////////////////////////////////////////////////////////////////////////////////////////////
    // using types
    //

    using dates::date_error;
    using dates::date;
    using dates::adjusted_date;
    using dates::adjusted_period;
    using dates::duration;
    using dates::calendar;
    using dates::schedule;
    using dates::day_counter;


    ////////////////////////////////////////////////////////////////////////////////////////////////
    // using functions
    //

    using dates::parse_date;
    using dates::today;
    using dates::create_from_excel_day;
    using dates::get_excel_day;
    using dates::adjust;
    using dates::parse_duration;
    using dates::make_days;
    using dates::make_weeks;
    using dates::make_months;
    using dates::make_years;
    using dates::add_duration;
    using dates::get_dummy_calendar;
    using dates::generate_schedule;

} // namespace zzheng::quant
} // namespace zzheng


#endif // ZZHENG_QUANT_DATES_HPP_20080709__


